<!DOCTYPE HTML>
<!--
	Stellar by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
	<head>
		<title>Material Point Method</title>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
		<link rel="stylesheet" href="assets/css/main.css" />
		<noscript><link rel="stylesheet" href="assets/css/noscript.css" /></noscript>
	</head>
	<body class="is-preload">

		<!-- Wrapper -->
			<div id="wrapper">

				<!-- Header -->
					<header id="header" class="alt">
						<span class="logo"><img src="images/National_Taiwan_University_logo.svg" alt="" width="10%" /></span>
						<h1>Material Point Method</h1>
						<p>Simulating on GPU using Material Point Method and rendering<br />
						refer to <a href="https://github.com/WindQAQ/MPM">WindQAQ/MPM</a> on GitHub.</p>
					</header>

				<!-- Nav -->
					<nav id="nav">
						<ul>
							<li><a href="#about" class="active">About</a></li>
							<li><a href="#mpm">What is MPM?</a></li>
							<li><a href="#impl">Implementation</a></li>
							<li><a href="#demo">Demo Scenes</a></li>
							<li><a href="#ack">Acknowledgments</a></li>
						</ul>
					</nav>

				<!-- Main -->
					<div id="main">

						<!-- Introduction -->
							<section id="about" class="main">
								<div class="spotlight">
									<div class="content">
										<header class="major">
											<h2>About this project</h2>
										</header>
										<p>This is the final project for the course, <i>General-Purpose GPU Programming 2018 Spring @ NTU CSIE</i>, lectured by Wei-Chao Chen.</p>
										<p>We focus on physical effect simulation using material point method. Because this course is all about GPU, our implementation is based on C++ and CUDA to accelerate the whole process with GPU computating power.</p>
										<ul class="actions">
											<li><a href="https://github.com/WindQAQ/MPM" class="button">View on GitHub</a></li>
										</ul>
									</div>
									<span class="image"><img src="images/gpgpu_free_fall_01250_750x750.png" alt="" /></span>
								</div>
							</section>

							<section id="mpm" class="main">
								<header class="major">
									<h2>What is MPM?</h2>
								</header>
								<p class="content">
									The material point method (MPM) is a numerical technique used to simulate the behavior of solids, liquids, gases, and any other continuum material.<br />
									In the MPM, a continuum body is described by a number of small Lagrangian elements referred to as 'material points'. These material points are surrounded by a background mesh/grid that is used only to calculate gradient terms such as the deformation gradient.
								</p>
								<footer class="major">
									<ul class="actions special">
										<li><a href="https://en.wikipedia.org/wiki/Material_point_method" class="button">View on Wikipedia</a></li>
									</ul>
								</footer>
							</section>

							<section id="impl" class="main">
								<header class="major">
									<h2>Implementation</h2>
								</header>
								<p class="content">
									As shown in the paper <a href="https://www.math.ucla.edu/~jteran/papers/SSCTS13.pdf">A material point method for snow simulation</a>, MPM is composed of several steps. Moreover, in each step, the computation on grids or particles can be highly parallel, and thus, we use <a href="https://docs.nvidia.com/cuda/thrust/index.html">Thrust</a>, a C++ template library for CUDA to utilize GPU for parallel computing.
									For rendering, OpenGL is used for real-time result viewing to roughly check whether the simulation is correct. Furthermore, we also try to render more realistic point cloud. Thanks to <a href="https://github.com/NVIDIA/gvdb-voxels">GVDB-Voxels</a> and <a href="https://developer.nvidia.com/optix">NVIDIA OptiX</a>, we save lots of time to render a more plausible scene.
								</p>
								<footer class="major">
									<ul class="actions special">
										<li><a href="implementation.html" class="button">Learn More</a></li>
									</ul>
								</footer>
							</section>

							<section id="demo" class="main special">
								<header class="major">
									<h2>Demo Scenes</h2>
								</header>
								<div class="box alt">
									<div class="row gtr-uniform">
										<div class="col-4 col-12-medium">
											<span class="image fit"><img src="images/gpgpu_free_fall_02500_470x470.png" alt="" /></span>
											<h3>Free Fall</h3>
											<p class="content">Free fall of several letters of snow-like substance, which forms the name of this course, "GPGPU". This demonstrates how points are affected under the influence of gravity.</p>
											<ul class="actions special">
												<li><a href="free_fall.html" class="button">Watch Video</a></li>
											</ul>
										</div>
										<div class="col-4 col-12-medium">
											<span class="image fit"><img src="images/two_snow_balls_500x500.png" alt="" /></span>
											<h3>Two Snow Balls</h3>
											<p class="content">This scene demonstrates about the collision between two snow balls with different configurations. Both are influenced by the gravity at the same time.</p>
											<ul class="actions special">
												<li><a href="two_snow_balls.html" class="button">Watch Video</a></li>
											</ul>
										</div>
										<div class="col-4 col-12-medium">
											<span class="image fit"><img src="images/castle_ball_00605_500x500.png" alt="" /></span>
											<h3>The Collapse of Castle</h3>
											<p class="content">Modeled structures like the sand castle can be destroyed by the high-speed ball. This shows how fine-grained particles spread out because of the physical impact.</p>
											<ul class="actions special">
												<li><a href="the_collapse_of_castle.html" class="button">Watch Video</a></li>
											</ul>
										</div>
									</div>
								</div>
								<!-- <footer class="major">
									<ul class="actions special">
										<li><a href="generic.html" class="button">Learn More</a></li>
									</ul>
								</footer> -->
							</section>

						<!-- Get Started -->
							<section id="ack" class="main special">
								<header class="major">
									<h2>Acknowledgments</h2>
									<p>
										First of all, thank <b>Instructor Wei-Chao Chen</b> for the lectures and telling us how to survive in Silicon Valley. <br/>
										To collaborate together, we would like to thank <a href="https://cloud.google.com/">Google Cloud Platform</a> for $300 free trial of cloud server. <br/>
										Thank <b>Epic Games</b> for free game <a href="https://www.epicgames.com/fortnite/">Fortnite</a> and <b>Elta Sports</b> for free streaming of <a href="https://www.fifa.com/worldcup/">2018 FIFA World Cup Russia</a>. With these entertainments, we can kill our time while waiting the long-time simulation and rendering.
									</p>
								</header>
							</section>

					</div>

				<!-- Footer -->
					<footer id="footer">
						<section>
							<h2>Resources</h2>
							<dl class="alt">
								<dt>Papers</dt>
								<dd><a href="https://www.math.ucla.edu/~jteran/papers/PGKFTJM17.pdf">Multi-species simulation of porous sand and water mixtures</a></dd>
								<dd><a href="https://www.math.ucla.edu/~jteran/papers/SSCTS13.pdf">A material point method for snow simulation</a></dd>
								<dt>Renderer</dt>
								<dd><a href="https://github.com/NVIDIA/gvdb-voxels">GVDB-Voxels</a></dd>
								<dd><a href="https://developer.nvidia.com/optix">NVIDIA OptiX</a></dd>
							</dl>
						</section>
						<section>
							<h2>Contact</h2>
							<dl class="alt">
								<dt>Email</dt>
								<dd><a href="mailto:windqaq@gmail.com">windqaq@gmail.com</a></dd>
								<dd><a href="mailto:yishen992@gmail.com">yishen992@gmail.com</a></dd>
								<dd><a href="mailto:jcly.rikiu@gmail.com">jcly.rikiu@gmail.com</a></dd>
							</dl>
							<ul class="icons">
								<li><a href="https://www.youtube.com/playlist?list=PLBhmgLZcOxcW9JMD1OX5tVYT1LouefdQz" class="icon fa-youtube alt"><span class="label">YouTube</span></a></li>
								<li><a href="https://github.com/WindQAQ/MPM" class="icon fa-github alt"><span class="label">GitHub</span></a></li>
							</ul>
						</section>
						<p class="copyright">&copy; Chen Li-Yu, Lin Yi-Sheng, Sung Tzu-Wei. Design: <a href="https://html5up.net">HTML5 UP</a>.</p>
					</footer>

			</div>

		<!-- Scripts -->
			<script src="assets/js/jquery.min.js"></script>
			<script src="assets/js/jquery.scrollex.min.js"></script>
			<script src="assets/js/jquery.scrolly.min.js"></script>
			<script src="assets/js/browser.min.js"></script>
			<script src="assets/js/breakpoints.min.js"></script>
			<script src="assets/js/util.js"></script>
			<script src="assets/js/main.js"></script>

	</body>
</html>
